////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2017-2018 Qualcomm Technologies, Inc.
// All Rights Reserved.
// Confidential and Proprietary - Qualcomm Technologies, Inc.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// THIS IS AUTO-GENERATED CODE.  PLEASE DO NOT EDIT (File bug reports against tools).
///
/// Auto-generated by: ParameterParser V1.1.4
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// @file  gamma_1_5_0.h
/// @brief Auto-generated Chromatix parameter file
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#ifndef GAMMA_1_5_0_H
#define GAMMA_1_5_0_H

#include "parametermodule.h"
#include "parameterfilesymboltable.h"
#include "parametertypes.h"
#include "ispglobalelements.h"

#define GAMMA_1_5_0_NAMESPACE_BEGIN namespace gamma_1_5_0 {
#define GAMMA_1_5_0_NAMESPACE_END }

GAMMA_1_5_0_NAMESPACE_BEGIN

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// gamma15_rgn_dataType
///
/// Tuning Level:  must_tune
/// Description:   Gamma table per channel
/// Default Value: 0 18 30 42 54 66 78 92 106 118 133 147 159 171 183 195 207 217 227 239 249 259 269 277 287 297 305 313 321 329 337 345 351 357 365 373 381 388 394 400 406 414 420 426 434 440 444 450 458 464 468 474 480 486 492 496 502 508 512 518 524 528 534 538 542 548 552 558 564 568 572 576 580 584 588 592 598 602 606 610 614 618 622 626 630 632 636 640 645 649 653 657 661 665 669 672 675 679 681 685 688 691 695 699 701 704 707 711 713 716 719 723 725 728 731 735 737 741 744 747 749 752 755 757 760 763 765 768 771 773 776 779 781 784 787 789 792 795 797 800 803 805 808 811 813 816 819 821 823 825 827 829 831 833 836 839 841 844 846 848 851 853 855 857 859 861 864 866 868 870 872 874 876 878 880 882 884 886 888 890 892 894 896 898 900 903 905 907 909 911 913 915 916 918 920 922 923 925 927 929 931 932 934 935 937 939 941 943 945 947 948 950 952 954 955 957 959 961 963 964 966 967 969 971 972 974 975 976 978 980 982 983 985 987 988 990 992 994 995 997 999 1001 1003 1004 1005 1007 1008 1010 1011 1013 1015 1016 1017 1019 1020 1022 1023
/// Range:         [0,1023]
/// Bit Depth:     (16+2*b) bit, signed. (8+b) LSBs base (unsigned), (8+b) MSBs delta (signed).
/// Length:        257
/// Conversion:    no conversion needed
/// Notes:         none
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct gamma15_rgn_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// table - Array
    ///
    /// Tuning Level:  must_tune
    /// Default Value: 0 18 30 42 54 66 78 92 106 118 133 147 159 171 183 195 207 217 227 239 249 259 269 277 287 297 305 313 321 329 337 345 351 357 365 373 381 388 394 400 406 414 420 426 434 440 444 450 458 464 468 474 480 486 492 496 502 508 512 518 524 528 534 538 542 548 552 558 564 568 572 576 580 584 588 592 598 602 606 610 614 618 622 626 630 632 636 640 645 649 653 657 661 665 669 672 675 679 681 685 688 691 695 699 701 704 707 711 713 716 719 723 725 728 731 735 737 741 744 747 749 752 755 757 760 763 765 768 771 773 776 779 781 784 787 789 792 795 797 800 803 805 808 811 813 816 819 821 823 825 827 829 831 833 836 839 841 844 846 848 851 853 855 857 859 861 864 866 868 870 872 874 876 878 880 882 884 886 888 890 892 894 896 898 900 903 905 907 909 911 913 915 916 918 920 922 923 925 927 929 931 932 934 935 937 939 941 943 945 947 948 950 952 954 955 957 959 961 963 964 966 967 969 971 972 974 975 976 978 980 982 983 985 987 988 990 992 994 995 997 999 1001 1003 1004 1005 1007 1008 1010 1011 1013 1015 1016 1017 1019 1020 1022 1023
    /// Length:        257
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT table[257];
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// mod_gamma15_channel_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct mod_gamma15_channel_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// channel_type
    /// Comments:      Channel type selection for R/G/B/All
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ispglobalelements::channel_rgb_type     channel_type;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// gamma15_rgn_data
    ///
    /// Tuning Level:  must_tune
    /// Description:   Gamma table per channel
    /// Default Value: 0 18 30 42 54 66 78 92 106 118 133 147 159 171 183 195 207 217 227 239 249 259 269 277 287 297 305 313 321 329 337 345 351 357 365 373 381 388 394 400 406 414 420 426 434 440 444 450 458 464 468 474 480 486 492 496 502 508 512 518 524 528 534 538 542 548 552 558 564 568 572 576 580 584 588 592 598 602 606 610 614 618 622 626 630 632 636 640 645 649 653 657 661 665 669 672 675 679 681 685 688 691 695 699 701 704 707 711 713 716 719 723 725 728 731 735 737 741 744 747 749 752 755 757 760 763 765 768 771 773 776 779 781 784 787 789 792 795 797 800 803 805 808 811 813 816 819 821 823 825 827 829 831 833 836 839 841 844 846 848 851 853 855 857 859 861 864 866 868 870 872 874 876 878 880 882 884 886 888 890 892 894 896 898 900 903 905 907 909 911 913 915 916 918 920 922 923 925 927 929 931 932 934 935 937 939 941 943 945 947 948 950 952 954 955 957 959 961 963 964 966 967 969 971 972 974 975 976 978 980 982 983 985 987 988 990 992 994 995 997 999 1001 1003 1004 1005 1007 1008 1010 1011 1013 1015 1016 1017 1019 1020 1022 1023
    /// Range:         [0,1023]
    /// Bit Depth:     (16+2*b) bit, signed. (8+b) LSBs base (unsigned), (8+b) MSBs delta (signed).
    /// Length:        257
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    gamma15_rgn_dataType gamma15_rgn_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// mod_gamma15_cct_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct mod_gamma15_cct_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// cct_trigger
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ispglobalelements::trigger_pt_type cct_trigger;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// cct_data
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct cct_dataStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// mod_gamma15_channel_data - Array
        /// Min Length:    1
        /// Max Length:    3
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32                        mod_gamma15_channel_dataCount;
        UINT32                        mod_gamma15_channel_dataID;
        mod_gamma15_channel_dataType* mod_gamma15_channel_data;
    } cct_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// mod_gamma15_aec_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct mod_gamma15_aec_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// aec_trigger
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    globalelements::trigger_pt_type_aec aec_trigger;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// aec_data
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct aec_dataStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// mod_gamma15_cct_data - Array
        /// Min Length:    1
        /// Max Length:    Unbounded
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32                    mod_gamma15_cct_dataCount;
        UINT32                    mod_gamma15_cct_dataID;
        mod_gamma15_cct_dataType* mod_gamma15_cct_data;
    } aec_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// mod_gamma15_led_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct mod_gamma15_led_dataType
{
    ispglobalelements::trigger_pt_type_led_idx led_idx_trigger;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// led_idx_data
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct led_idx_dataStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// mod_gamma15_aec_data - Array
        /// Min Length:    1
        /// Max Length:    Unbounded
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32                    mod_gamma15_aec_dataCount;
        UINT32                    mod_gamma15_aec_dataID;
        mod_gamma15_aec_dataType* mod_gamma15_aec_data;
    } led_idx_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// mod_gamma15_hdr_aec_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct mod_gamma15_hdr_aec_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// hdr_aec_trigger
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ispglobalelements::trigger_pt_type_aec_hdr hdr_aec_trigger;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// hdr_aec_data
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct hdr_aec_dataStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// mod_gamma15_led_idx_data - Array
        /// Min Length:    1
        /// Max Length:    Unbounded
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32                    mod_gamma15_led_idx_dataCount;
        UINT32                    mod_gamma15_led_idx_dataID;
        mod_gamma15_led_dataType* mod_gamma15_led_idx_data;
    } hdr_aec_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// mod_gamma15_drc_gain_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct mod_gamma15_drc_gain_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// drc_gain_trigger
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ispglobalelements::trigger_pt_type drc_gain_trigger;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// drc_gain_data
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct drc_gain_dataStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// mod_gamma15_hdr_aec_data - Array
        /// Min Length:    1
        /// Max Length:    Unbounded
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32                        mod_gamma15_hdr_aec_dataCount;
        UINT32                        mod_gamma15_hdr_aec_dataID;
        mod_gamma15_hdr_aec_dataType* mod_gamma15_hdr_aec_data;
    } drc_gain_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// chromatix_gamma15_coreType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct chromatix_gamma15_coreType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// mod_gamma15_drc_gain_data - Array
    /// Min Length:    1
    /// Max Length:    Unbounded
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    UINT32                         mod_gamma15_drc_gain_dataCount;
    UINT32                         mod_gamma15_drc_gain_dataID;
    mod_gamma15_drc_gain_dataType* mod_gamma15_drc_gain_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// chromatix_gamma15Type
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct chromatix_gamma15Type
{
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Binary file symbol table entry ID
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    UINT32 SymbolTableID;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// enable_section
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct enable_sectionStruct
    {
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// Binary file symbol table entry ID
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 SymbolTableID;
        globalelements::enable_flag_type gamma_enable;
    } enable_section;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// module_version
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct module_versionStruct
    {
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// Binary file symbol table entry ID
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 SymbolTableID;
        INT32 major_revision;
        INT32 minor_revision;
        INT32 incr_revision;
    } module_version;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// control_variables
    ///
    /// Default Value: control_drc_gain, control_aec_exp_sensitivity_ratio, control_led_idx, control_lux_idx, control_cct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct control_variablesStruct
    {
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// Binary file symbol table entry ID
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 SymbolTableID;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// control_var_type - Array
        /// Default Value: control_drc_gain, control_aec_exp_sensitivity_ratio, control_led_idx, control_lux_idx, control_cct
        /// Length:        5
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        enum class control_var_typeEnum
        {
            control_drc_gain                  = 0,
            control_exp_time_ratio            = 1,
            control_aec_exp_sensitivity_ratio = 2,
            control_led_idx                   = 3,
            control_lux_idx                   = 4,
            control_gain                      = 5,
            control_cct                       = 6
        } control_var_type[5];
    } control_variables;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// control_method
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct control_methodStruct
    {
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// Binary file symbol table entry ID
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 SymbolTableID;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// aec_exp_control
        /// Default Value: control_lux_idx
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ispglobalelements::tuning_control_aec_type     aec_exp_control;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// aec_hdr_control
        /// Default Value: control_aec_exp_sensitivity_ratio
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ispglobalelements::tuning_control_aec_hdr_type aec_hdr_control;
    } control_method;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// private_information
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct private_informationStruct
    {
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// Binary file symbol table entry ID
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 SymbolTableID;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// led_sensitivity_trigger
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ispglobalelements::trigger_pt_type led_sensitivity_trigger;
    } private_information;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// chromatix_gamma15_core
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    chromatix_gamma15_coreType chromatix_gamma15_core;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// chromatix_gamma15TypeClass
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class chromatix_gamma15TypeClass : public ParameterModule, public chromatix_gamma15Type
{
public:
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Version
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static const UINT16 MAJOR = 1;
    static const UINT16 MINOR = 5;
    static const UINT32 PATCH = 0;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Default Constructor
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    chromatix_gamma15TypeClass(
        const CHAR* name);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Constructor
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    chromatix_gamma15TypeClass(
        const CHAR* name,
        UINT32 modeId,
        UINT16 mode,
        UINT16 subMode,
        UINT32 group);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Destructor
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    virtual ~chromatix_gamma15TypeClass();

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// GetName
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static const CHAR* GetName(
        const CHAR* type);


    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load gamma15_rgn_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadgamma15_rgn_dataType(
        ParameterFileSymbolTableEntry* entry,
        gamma15_rgn_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_gamma15_channel_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_gamma15_channel_dataType(
        ParameterFileSymbolTableEntry* entry,
        mod_gamma15_channel_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_gamma15_cct_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_gamma15_cct_dataType(
        ParameterFileSymbolTableEntry* entry,
        mod_gamma15_cct_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_gamma15_cct_dataType_cct_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_gamma15_cct_dataType_cct_dataStruct(
        ParameterFileSymbolTableEntry* entry,
        mod_gamma15_cct_dataType::cct_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_gamma15_aec_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_gamma15_aec_dataType(
        ParameterFileSymbolTableEntry* entry,
        mod_gamma15_aec_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_gamma15_aec_dataType_aec_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_gamma15_aec_dataType_aec_dataStruct(
        ParameterFileSymbolTableEntry* entry,
        mod_gamma15_aec_dataType::aec_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_gamma15_led_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_gamma15_led_dataType(
        ParameterFileSymbolTableEntry* entry,
        mod_gamma15_led_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_gamma15_led_dataType_led_idx_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_gamma15_led_dataType_led_idx_dataStruct(
        ParameterFileSymbolTableEntry* entry,
        mod_gamma15_led_dataType::led_idx_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_gamma15_hdr_aec_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_gamma15_hdr_aec_dataType(
        ParameterFileSymbolTableEntry* entry,
        mod_gamma15_hdr_aec_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_gamma15_hdr_aec_dataType_hdr_aec_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_gamma15_hdr_aec_dataType_hdr_aec_dataStruct(
        ParameterFileSymbolTableEntry* entry,
        mod_gamma15_hdr_aec_dataType::hdr_aec_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_gamma15_drc_gain_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_gamma15_drc_gain_dataType(
        ParameterFileSymbolTableEntry* entry,
        mod_gamma15_drc_gain_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_gamma15_drc_gain_dataType_drc_gain_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_gamma15_drc_gain_dataType_drc_gain_dataStruct(
        ParameterFileSymbolTableEntry* entry,
        mod_gamma15_drc_gain_dataType::drc_gain_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load chromatix_gamma15_coreType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadchromatix_gamma15_coreType(
        ParameterFileSymbolTableEntry* entry,
        chromatix_gamma15_coreType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load chromatix_gamma15Type
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadchromatix_gamma15Type(
        ParameterFileSymbolTableEntry* entry,
        chromatix_gamma15Type* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load enable_sectionStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadenable_sectionStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_gamma15Type::enable_sectionStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load module_versionStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmodule_versionStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_gamma15Type::module_versionStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load control_variablesStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadcontrol_variablesStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_gamma15Type::control_variablesStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load control_methodStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadcontrol_methodStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_gamma15Type::control_methodStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load private_informationStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadprivate_informationStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_gamma15Type::private_informationStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_gamma15_cct_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_gamma15_cct_dataType(
        mod_gamma15_cct_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_gamma15_cct_dataType_cct_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_gamma15_cct_dataType_cct_dataStruct(
        mod_gamma15_cct_dataType::cct_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_gamma15_aec_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_gamma15_aec_dataType(
        mod_gamma15_aec_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_gamma15_aec_dataType_aec_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_gamma15_aec_dataType_aec_dataStruct(
        mod_gamma15_aec_dataType::aec_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_gamma15_led_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_gamma15_led_dataType(
        mod_gamma15_led_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_gamma15_led_dataType_led_idx_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_gamma15_led_dataType_led_idx_dataStruct(
        mod_gamma15_led_dataType::led_idx_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_gamma15_hdr_aec_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_gamma15_hdr_aec_dataType(
        mod_gamma15_hdr_aec_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_gamma15_hdr_aec_dataType_hdr_aec_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_gamma15_hdr_aec_dataType_hdr_aec_dataStruct(
        mod_gamma15_hdr_aec_dataType::hdr_aec_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_gamma15_drc_gain_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_gamma15_drc_gain_dataType(
        mod_gamma15_drc_gain_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_gamma15_drc_gain_dataType_drc_gain_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_gamma15_drc_gain_dataType_drc_gain_dataStruct(
        mod_gamma15_drc_gain_dataType::drc_gain_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload chromatix_gamma15_coreType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadchromatix_gamma15_coreType(
        chromatix_gamma15_coreType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload chromatix_gamma15Type
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadchromatix_gamma15Type(
        chromatix_gamma15Type* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Parse symbol table entry, and return a new object
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    virtual ParameterModule* Parse(
        ParameterSetManager* manager,
        ParameterFileSymbolTableEntry* entry) const;

}; // End class chromatix_gamma15TypeClass

GAMMA_1_5_0_NAMESPACE_END
#endif // GAMMA_1_5_0_H

